package services

import (
	"context"
	"fmt"

	api "gofunc/api/proto"
	"gofunc/internal/validator"
)

type HelloService struct {
	api.UnimplementedHelloServiceServer
}

func (s *HelloService) HelloCloudRu(
	_ context.Context,
	req *api.HelloRequest,
) (*api.HelloResponse, error) {
	name := req.Name
	uuid := req.Uuid

	//Раскомментируйте этот код, чтобы тестировать Трим на контроллере
	//не забудьте предварительно отключить Middleware

	//name = strings.Trim(name, " ")
	//uuid = strings.Trim(uuid, " ")
	switch {
	case !validator.CheckName(name):
		return nil, fmt.Errorf("invalid name")
	case !validator.CheckUUID(uuid):
		return nil, fmt.Errorf("invalid uuid")
	}

	return &api.HelloResponse{
		Message: fmt.Sprintf(
			"Привет, %s. Твой id: %v",
			name,
			uuid),
	}, nil
}
